# XPATH= Xml path 也就是xml文档中定位元素的路径
# HTML代码使用的就是XML格式，区别是HTML代码的标签是预定义的，XML代码的标签是自定义的
# <empno type="int">1234</empon><ename type="varchar">Rover</ename>

from selenium import webdriver
from selenium.webdriver.common.by import By
dr =webdriver.Firefox()
dr.get('http://stu000339/dbshop/public/')

# 1.点击登录
# XPATH绝对路径
# 脚本禁止使用绝对路径,界面一发生改变,绝对路径就会失效,脚本后期维护成本过高
# 火狐浏览器可以复制绝对路径
dr.find_element(By.XPATH,'/html/body/div[1]/div/div[2]/ul/li[3]/a').click()

# 2.输入会员账号
# XPATH相对路径
# 利用元素附近比较好定位的元素+相对路径来定位
# 绝对路径/,相对路径//
dr.find_element(By.XPATH,'//form[@id="user-login-form"]/div[2]/div/input').send_keys('Rover')

# 3,输入会员密码
# xpath属性表达式
# //标签[@属性='值']
dr.find_element(By.XPATH,'//*[@id="loginPassword"]').send_keys('12345678')

# 4.点击会员登录
# xpath表达式
# //标签[text()="文本"]
dr.find_element(By.XPATH,'//button[text()="会员登录"]').click()

# 5.输入小米，点击搜索
# xpath数组表达式
# (xpath表达式)[第几个]
dr.find_element(By.XPATH,'(//input)[1]').send_keys('小米')
dr.find_element(By.XPATH,'(//input)[2]').click()

# 6.点击用户中心
# xpath多属性表达式
# //标签[表达式1 and 表达式2 or 表达式3]
dr.find_element(By.XPATH,'//a[text()="我的订单" or text()="他的订单"]').click()

# 7.点击’代付款订单‘
# xpath模糊查询
# //标签[contains(@属性,"值")]
# dr.find_element(By.XPATH,'//a[contains(@href,"orderStatus=10")]').click()
dr.find_element(By.XPATH,'//a[contains(.,"待付款订单")]').click()

# 8.到首页，获取电冰箱，前1位元素和后2位元素的文本内容
# xpath兄弟元素
# xpath表达式/preceding-sibling::向前数元素
# xpath表达式/following-sibling::向后数元素
dr.find_element(By.XPATH,'(//img)[1]').click()
t1=dr.find_element(By.XPATH,'//a[text()="电冰箱"]/preceding-sibling::a[1]').text
t2=dr.find_element(By.XPATH,'//a[text()="电冰箱"]/following-sibling::*[2]').text
print(t1,t2)